JVM for a Heterogeneous Shared Memory System
نویسندگان
چکیده
InterWeave is a middleware system that supports the sharing of strongly typed data structures across heterogeneous languages and machine architectures. Java presents special challenges for InterWeave, including write detection, data translation, and the interface with the garbage collector. In this paper, we discuss our implementation of J-InterWeave, a JVM based on the Kaffe virtual machine and on our locally developed InterWeave client software. J-InterWeave uses bytecode instrumentation to detect writes to shared objects, and leverages Kaffe’s class objects to generate type information for correct translation between the local object format and the machineindependent InterWeave wire format. Experiments indicate that our bytecode instrumentation imposes less than 2% performance cost in Kaffe interpretation mode, and less than 10% overhead in JIT mode. Moreover, JInterWeave’s translation between local and wire format is more than 8 times as fast as the implementation of object serialization in Sun JDK 1.3.1 for double arrays. To illustrate the flexibility and efficiency of J-InterWeave in practice, we discuss its use for remote visualization and steering of a stellar dynamics simulation system written in C.
منابع مشابه
A JVM for the Barrelfish Operating System
Barrelfish is a research operating system based on the Multikernel model, an OS structure that treats heterogeneous multi-core systems as a network of independent nodes communicating via message-passing. Arguably, such a system can benefit from high-level programming models such as the Java Virtual Machine, since they can provide a singlesystem image and facilitate migration of threads between ...
متن کاملJavaSplit: A Runtime for Execution of Monolithic Java Programs on Heterogeneous Collections of Commodity Workstations
This paper describes the design and presents the preliminary performance evaluation of JavaSplit, a portable runtime for distributed execution of multithreaded Java programs. JavaSplit transparently distributes threads and objects of an application among the participating nodes. Thus, it gains augmented computational power and increased memory capacity without modifying the Java multithreaded p...
متن کاملKaffemik: Supporting a distributed JVM on a single address space architecture
Java is increasingly used to develop large server applications. In order to provide powerful platforms for such applications a number of projects have proposed Java Virtual Machines (JVMs) that are based on network of workstations. These JVMs employ the message-passing paradigm, i.e. all communication between the distributed instances of the virtual machine take place using remote method invoca...
متن کاملJupiter/SVM: A JVM-based Single System Image for Clusters of Workstations
We address the problem of providing a single system image (SSI) on clusters of workstations, based on the Java Virtual Machine (JVM). Our approach is unique in that the needed functionality is separated in two layers: a shared virtual memory (SVM) system, CableS, that is optimized for system area networks and provides a standard Pthreads API, and a multithreaded JVM, Jupiter, that was originall...
متن کاملAn Evaluation of cJava System Architecture
In this work, we propose a new distributed run-time environment, which we called cJava, that enables multithread Java applications to execute in clusters transparently. Our implementation of cJava supports the distributed shared memory (DSM) which required significant extensions to the original Java virtual machine (JVM). First, a distributed object manager was incorporated to the JVM’s memory ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002